一、加入Jar包

在工程目录下新建lib文件夹,加入下面的Jar包:

  • mybatis-3.4.1.jar
  • mysql-connector-java-5.1.37-bin.jar
  • log4j.jar

其中,第一个为Mybatis的Jar包,第二个是MySQL的Jar包,第三个是日志的Jar包,当然,为了使用日志,还需要在类路径下加入log4j.xml

在工程目录下新建conf源代码文件夹,加入log4j.xml,到此第一步完成。

二、加入MyBatis的配置文件

在类路径下加入MyBatis的配置文件,该配置文件的作用是从这个配置文件中创建SqlSessionFactory,这里我们同样在conf文件夹下加入mybatis-config.xml文件,文件内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC" />
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/mybatis" />
<property name="username" value="root" />
<property name="password" value="1230" />
</dataSource>
</environment>
</environments>
<!--将我们写好的SQL映射文件注册到全局配置文件中-->
<mappers>
<mapper resource="EmployeeMapper.xml" />
</mappers>
</configuration>

<dataSource>标签下为数据库的一些配置,包括MySQL的driver、url、username和password。

小技巧:Eclipse下ctrl+shift+F快捷键可以快速格式化代码。

至于<mapper>标签下的内容我们后面再说。

三、根据数据库的内容创建对应的JavaBean

我这里在数据库里建立了一个Employee表,其有以下4个字段,分别是:

  • id
  • user_name
  • email
  • gender

我们在Eclipse中建立对应的JavaBean类,如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
package com.glemontree.mybatis.bean;
public class Employee {
private Integer id;
private String lastName;
private String email;
private String gender;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
@Override
public String toString() {
return "Employee [id=" + id + ", lastName=" + lastName + ", email="
+ email + ", gender=" + gender + "]";
}
}

四、创建映射文件

在conf目录下创建映射文件,映射文件的内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.glemontree.mybatis.EmployeeMapper">
<!--
namespace:名称空间;指定为接口的全类名
id:唯一标识
resultType:返回值类型
#{id}:从传递过来的参数中取出id值
public Employee getEmpById(Integer id);
-->
<select id="selectEmp" resultType="com.glemontree.mybatis.bean.Employee">
select * from tbl_employee where id = #{id}
</select>
</mapper>

此时我们需要更改第二步中MyBatis配置文件下<mapper>标签中的内容,将其改为我们刚刚创建的这个文件。

五、创建测试代码

创建Junit单元测试类,如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
package com.glemontree.mybatis.test;
import static org.junit.Assert.*;
import java.io.IOException;
import java.io.InputStream;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;
public class MyBatisTest {
public SqlSessionFactory getSqlSessionFactory() throws IOException {
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
return sqlSessionFactory;
}
@Test
public void test() throws IOException {
SqlSessionFactory sqlSessionFactory = getSqlSessionFactory();
SqlSession openSession = sqlSessionFactory.openSession();
// 告诉MyBatis执行EmployeeMapper.xml文件下的id为selectEmp的SQL语句
Employee employee = openSession.selectOne("com.glemontree.mybatis.dao.EmployeeMapper.selectEmp", 1);
System.out.println(employee);
}
}

其主要流程如下:

  • 根据xml配置文件(全局配置文件)创建SqlSessionFactory对象
  • 由SqlSessionFactory创建SqlSession对象,能直接执行已经映射的SQL语句
  • 使用selectOne()方法进行查询,其第一个参数为映射的SQL语句的唯一id标识符,第二个参数为传入的查询参数

六、创建MyBatis工程的步骤

  • 根据xml配置文件(全局配置文件)创建SqlSessionFactory对象,xml配置文件中含有数据源的一些信息
  • SQL映射文件:配置了每一个SQL,以及SQL的封装规则等
  • 将SQL映射文件注册到全局配置文件中
  • 写代码
    • 根据全局配置文件得到SqlSessionFactory
    • 使用SqlSessionFactory获取到SqlSession对象,使用SqlSession来进行增删改查,一个SqlSession就是代表和数据库的一次对话,用完记得关闭
    • 使用SQL的唯一标识来告诉MyBatis执行哪个SQL,SQL都是保存在SQL映射文件中的。